package com.fancon.android.emoji.widget;

import android.app.Activity;
import android.content.Context;
import android.text.Spanned;
import android.util.AttributeSet;
import android.widget.TextView;

import com.fancon.android.emoji.EmojiUtil;
import com.fancon.android.emoji.IRichGlobalState;

/**
 * Custom view for display emoji
 * 
 * @author Binhbt 2012
 */
public class RichTextView extends TextView {
	protected Context mContext;
	protected EmojiUtil mEmojiUtil;;

	public RichTextView(Context context) {
		super(context);
		setMinimumHeight(40);
		// TODO Auto-generated constructor stub
		mContext = context;
		mEmojiUtil = ((IRichGlobalState) (((Activity)mContext).getApplication())).getEmojiUtil();
	}

	public RichTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
		setMinimumHeight(40);
		mContext = context;
		try{
			mEmojiUtil = ((IRichGlobalState) (((Activity)mContext).getApplication())).getEmojiUtil();
		}catch (Exception e) {
			// TODO: handle exception
			mEmojiUtil = EmojiUtil.getInstance(mContext.getAssets(), "emojis");
			e.printStackTrace();
		}
	}

	public RichTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
		mEmojiUtil = ((IRichGlobalState) (((Activity)mContext).getApplication())).getEmojiUtil();
	}

	public void setText(final String utf8String) {
		Spanned displaySpanned = mEmojiUtil.toEmojiText(utf8String);
		RichTextView.super.setText(displaySpanned);
//		Thread thread = new Thread()
//		{
//		    @Override
//		    public void run() {
//		        try {
//		    		Spanned displaySpanned = mEmojiUtil.toEmojiText(utf8String);
//		    		RichTextView.super.setText(displaySpanned);
//		        } catch (Exception e) {
//		            e.printStackTrace();
//		        }
//		    }
//		};
//		thread.start();
	}

}
